package com.yungu.swift.order.dao;


import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.order.model.dto.OrderFareDto;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * Copyright © 厦门云谷互联信息科技有限公司 2018-2020 All Right Reserved
 * <p>
 * 订单费用Mapper
 * 重写 add
 *
 * @author Zerrion
 * @version 1.0.0-RELEASE
 * @since 2018-07-03 15:24
 */
public interface OrderFareMapper extends IMapper<OrderFareDto> {

    /**
     * 根据时间获取订单总收入
     *
     * @param map Map
     * @return Double
     */
    Double findIncomeByTime(Map<String, Object> map);

    /**
     * 获取
     *
     * @param map Map
     * @return Double
     */
    Double findBrokerageByUuid(Map<String, Object> map);

    /**
     * 根据查询对象获取司机跨城业务的订单流水
     *
     * @param map Map
     * @return Double
     */
    Double getPoolOrderIncome(Map<String, Object> map);

    /**
     * 根据查询对象获取司机出租车和专车订单的总流水
     *
     * @param map Map
     * @return Double
     */
    Double getSpeAndTaxiOrderIncome(Map<String, Object> map);

    /**
     * 获取所有费用信息，包括预估里程，预估价格
     *
     * @return OrderFareDto
     */
    OrderFareDto getOrderFareDetail(@Param("orderUuid") String orderUuid);

    /**
     * 出租车司机收现将起步价和订单费用置为 NULL
     *
     * @param orderUuid String
     * @return int
     */
    int editForTaxi(String orderUuid);

    int batchUpdateRelatedByMainOrderUuid(Map m);
}